{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.7.3"
    },
    "colab": {
      "name": "01 - Trained Word Embeddings with Gensim.ipynb",
      "provenance": [],
      "include_colab_link": true
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/jalammar/jalammar.github.io/blob/master/notebooks/nlp/01_Exploring_Word_Embeddings.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "qrmlikzE_6Er",
        "colab_type": "text"
      },
      "source": [
        "# 01 - Exploring Word Embeddings\n",
        "In this notebook, we'll look at trained word embeddings. We'll plot the embeddings so we can attempt to visually compare embeddings. We'll then look at analogies and word similarities. We'll use the Gensim library which makes it easy to work with embeddings."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "xB1y1EFC_6Eu",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "import gensim\n",
        "import gensim.downloader as api\n",
        "from sklearn.metrics.pairwise import cosine_similarity\n",
        "import seaborn as sns\n",
        "import matplotlib.pyplot as plt\n",
        "import warnings\n",
        "warnings.filterwarnings('ignore')"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "AlYeTyjz_6Ey",
        "colab_type": "text"
      },
      "source": [
        "#### Download a table of pre-trained embeddings"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "e-_Rx6Hn_6E0",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "cc44f9c3-8309-431e-f278-2ace23963bcd"
      },
      "source": [
        "# Download embeddings (66MB, glove, trained on wikipedia)\n",
        "model = api.load(\"glove-wiki-gigaword-50\")"
      ],
      "execution_count": 2,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "[==================================================] 100.0% 66.0/66.0MB downloaded\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "dqK6_8vX_6E3",
        "colab_type": "text"
      },
      "source": [
        "What's the embedding of 'king'?"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "XWeOUHjT_6E5",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 170
        },
        "outputId": "ea01d016-050b-485a-dcd6-45e798a92e2c"
      },
      "source": [
        "model['king']"
      ],
      "execution_count": 3,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([ 0.50451 ,  0.68607 , -0.59517 , -0.022801,  0.60046 , -0.13498 ,\n",
              "       -0.08813 ,  0.47377 , -0.61798 , -0.31012 , -0.076666,  1.493   ,\n",
              "       -0.034189, -0.98173 ,  0.68229 ,  0.81722 , -0.51874 , -0.31503 ,\n",
              "       -0.55809 ,  0.66421 ,  0.1961  , -0.13495 , -0.11476 , -0.30344 ,\n",
              "        0.41177 , -2.223   , -1.0756  , -1.0783  , -0.34354 ,  0.33505 ,\n",
              "        1.9927  , -0.04234 , -0.64319 ,  0.71125 ,  0.49159 ,  0.16754 ,\n",
              "        0.34344 , -0.25663 , -0.8523  ,  0.1661  ,  0.40102 ,  1.1685  ,\n",
              "       -1.0137  , -0.21585 , -0.15155 ,  0.78321 , -0.91241 , -1.6106  ,\n",
              "       -0.64426 , -0.51042 ], dtype=float32)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 3
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "S2duYBkk_6E_",
        "colab_type": "text"
      },
      "source": [
        "#### How many words does this table have?"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "_6BObQ0q_6FA",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "5665e2ca-00fb-4414-e2aa-2076f70ffd02"
      },
      "source": [
        "model.vectors.shape"
      ],
      "execution_count": 4,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(400000, 50)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 4
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "u9ULYBe7_6FE",
        "colab_type": "text"
      },
      "source": [
        "Which means:\n",
        "* 400,000 words (vocab_size)\n",
        "* Each has an embedding composed of 50 numbers (embedding_size)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "0vUJ6e9B_6FG",
        "colab_type": "text"
      },
      "source": [
        "### Visualizing the embedding vector\n",
        "Let's plot the vector so we can have a colorful visual of values in the embedding vector"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "RRmmYf8-_6FT",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "\n",
        "def plot_embeddings(vectors, labels=None):\n",
        "    n_vectors = len(vectors)\n",
        "    fig = plt.figure(figsize=(12, n_vectors))\n",
        "    # ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])\n",
        "    # ax = fig.add_axes([1, 1, 1, 1])\n",
        "    ax = plt.gca()\n",
        "    \n",
        "    sns.heatmap(vectors, cmap='RdBu', vmax=2, vmin=-2, ax=ax)\n",
        "    \n",
        "    if labels:\n",
        "        ax.set_yticklabels(labels,rotation=0)\n",
        "        ax.tick_params(axis='both', which='major', labelsize=30)\n",
        "        \n",
        "    plt.tick_params(axis='x',          # changes apply to the x-axis\n",
        "        which='both',      # both major and minor ticks are affected\n",
        "        bottom=False,      # ticks along the bottom edge are off\n",
        "        top=False,         # ticks along the top edge are off\n",
        "        labelbottom=False) # labels along the bottom edge are off\n",
        "    \n",
        "    # From https://github.com/mwaskom/seaborn/issues/1773\n",
        "    # fix for mpl bug that cuts off top/bottom of seaborn viz\n",
        "    b, t = plt.ylim() # discover the values for bottom and top\n",
        "    b += 0.5 # Add 0.5 to the bottom\n",
        "    t -= 0.5 # Subtract 0.5 from the top\n",
        "    plt.ylim(b, t) # update the ylim(bottom, top) values\n",
        "    plt.show() # ta-da!"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "nW_otYufCb9b",
        "colab_type": "text"
      },
      "source": [
        "Let's plot the embedding of `king`"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "1QJf4kfvCWOU",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 86
        },
        "outputId": "717f0aa1-43e6-491e-ba11-9dc01aadc2d6"
      },
      "source": [
        "plot_embeddings([model['king']], ['king'])"
      ],
      "execution_count": 53,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAArAAAABFCAYAAACyhNU1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0\ndHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAMiElEQVR4nO3deYxdZRnH8e+vna3TSotFkcWCCBqV\nKIiyiEixgnUtFdCCqHVDomDcojUaQY3GjWBNFQREFolQlcQipaBoAbVoURRZVJYgDksrVNsyXWba\nefzjnDlzOp2Z+86c287c6e+TvOm55z7z3rc3zeTJ2/M+jyICMzMzM7NGMWG0F2BmZmZmNhxOYM3M\nzMysoTiBNTMzM7OG4gTWzMzMzBqKE1gzMzMzayhOYM3MzMysoTSN9gIamOuPmZmZWb1ptBfQcuj7\nihyn685LR309A3ECa2ZmZmaF5slTR3sJNfkRAjMzMzMrtLTvVoxaJF0qabWku4eImSnpL5LukXRL\nPdboBNbMzMzMCk2TphQjwWXA7MHelDQN+B7w1oh4CXBKXdZYj0nMzMzMbHxoaU9/hCAibpW0/xAh\npwHXRsQjefzqSovLeQfWzMzMzArNk6cWQ9IZku4ojTOGOd0LgN0lLZf0J0nvrscavQNrZmZmZoXm\n1pbiOiIuAi6qMF0TcBgwC5gErJB0e0T8s8oancCamZmZWaF1UnM9p+sAnoqITqBT0q3Ay4BKCawf\nITAzMzOzQuukpmLUwc+BV0tqktQOHAHcV3VS78CamZmZWaG5NT09lPRjYCawh6QO4BygGSAiLoyI\n+yQtA+4CeoBLImLQklupnMCamZmZWWE4O68RcWpCzDeBb1ZZU39OYM3MzMys0FbfZ2B3CCewZmZm\nZlaY1u4Edty65cEnk2MfXbcpKe6ktend1eLwE5Njb3p4fVLc7L2SpyQmttQOyv1pTSTHHvbQ9Ulx\nTQcdmjznlmnPTY59+Tm3JcX9+cszk+dc850FybG/mf3Z5Ngnnt6cFHd22z3Jc0549n7JsVsfeyAp\n7tr2I5PnPGbGtOTYZ5H27xoApZ1Xnbh+VfKUf5uQ/u/qwn0PSYpb8Oljk+eMrT3JsTPO+mRy7P2T\nDkiKe+nsjyXPuf63C5Nj43eLk+KumX5C8pwH7N6eHHvQ9Lbk2P9t2poUd+DWx5Pn7LzhyuTYjSen\n/b5Y3bklec4FS9J/X1y86vLk2GefmfZ7MJpbk+e86B9pvwMB5q1clBR321eXJc/5his+kRzbNP05\n6bGHvSk5dkeZ0ja8BFbSbGAhMJHsGdev9Xt/BnA5MC2PWRARS6us0QmsmZmZmRWmDuMRAkkTge8C\nx5OVzFopaUlE3FsK+zywOCIukPRiYCmwf5U1OoE1MzMzs8IwHyE4HHggIh4CkHQ1MAcoJ7AB7JZf\nTwUeq7rG5DqwkmZKinycO5IPk3RZaY79RzKHmZmZme04U9qaipHQSnYf4N+l1x35vbJzgdPzMltL\ngbOrrtE7sGZmZmZW2K1UB7YOrWQBTgUui4jzJB0FXCnp4IhIf5i/HyewZmZmZlaYMoxGBsCjQPlU\n6775vbL3A7MBImKFpDZgD2D1SNe4U1vJRsT8iFA+Ht6Zn21mZmZmtU1paSpGgpXAQZKeJ6kFmAcs\n6RfzCDALQNKLgDbgP1XW6B1YMzMzMyu0N6fvb0bEFklnATeSlci6NCLukfQl4I6IWAJ8ErhY0sfJ\nDnTNj4j0GpsDcAJrZmZmZoVnpO28FvKarkv73ftC6fpe4Oi6LC5X90cIJD1f0oN5pYGePNvufW/I\nKgQDVTqQNEPSeZL+LqlT0v8k/V7ShyUlfcOS5kq6XtIqSZskPSzpR5KOyN+fX/rc+fX4HszMzMwa\nUXvzxGKMVXXdgZV0KHADsCewBXhvRPyownyzgR+TdW4oOyofJ0p6S0QM2I5DUjNwFXBKv7f2y8c8\nSZ8BnhrpGs3MzMzGk5aJGlZ8QieuVuAK4DCynOsdVc9C1W0HVtJxwHKy5HUD8NYqyStwCPAzoBX4\nPjCfrAzDeUBnHnM88Lkh5riIvuR1E3Ah8B7gdODb+Tq/BYx+3zYzMzOzMaC1ScWopdSJ6w3Ai4FT\n825bZe8H/hsRBwLnA1+vusa67MBKOolsp7MVWAO8OSJWVJx2DtmptddFxP2l+1dLWgz8jmz9Z0n6\nSv9dWEmzyJJegCeB4yLi7lLIVZIWkiXdJ1dcq5mZmdm40Da8HdiUTlxzyJoZAPwUWCRJVQ5yVd6B\nlfQhYDFZ8voocEwdktdep/dLXgGIiD8C1+Qvdyf78vr7eOn6rH7Ja+88D9OX5JqZmZnt8lqbJhQj\nQUonriImIrYAa4HpVdZYKYGV9AWy/5afAPwDeFV+0qwe7oyI24Z4/9el6222qvMCuSfkLx8DfjLY\nJBGxHLgrZUHldmrXXX1Fyo+YmZmZNZSWiSpGQivZUTHSRwgmSFoEfCR/vRJ4Y0Q8WZ9lAXB7jffL\nXR527/fey4Dm/PrWhFZly4GX1lpQuZ3aLQ8+Wal+mZmZmdlYNKF7U3Gd0Eo2pRNXb0xHXkFqKhUP\n0I80gf1o/uEAvwLmRsTTVRYygFrJcPmZ17Z+7+1dun4o4bNSYszMzMzGPXVvKL3qXwhqO0UnLrJE\ndR5wWr+YJWSH6FeQnTv69Wg1Mij/3GRgePUW0tTaNR3K5NL1hkGj+nTWDjEzMzMb/9Q9YHXSASV2\n4voBcKWkB8gO+8+rusaRJrALgRcBc8nqsd4o6fURsb7qguqknJC2J8RPrh1iZmZmNv5tuwNbW0In\nrk1sX5O/kpEe4uoG3gFcm7/uTWKfUZdVVfdY6fqAhPiUGDMzM7Nxb0LXxmKMVSOuQhARvUnsz/Jb\nvUnsbvVYWEV/JUuyAV4jqdbfc+aOXY6ZmZlZY4hNTxdjrKpURiuv5TWPrCgtZEnsstFOYvOt6pvy\nl3szxLa1pJkkVCAwMzMz2xXExs5iVCHpmZJ+Ken+/M/+VaN6474h6R5J90n6jqSaZ6sqNzLIk9hT\n2TaJHQs7seeXrhdJOrh/gKT9gct20nrMzMzMxryeDeuLUdEC4OaIOAi4OX+9DUmvAo4m20w8GHgl\ncGytiSsnsLBNEtvbMOBIRjmJjYib6UtO9wBWSrpA0rskvVPS+WSPGuxHX/IN1aofmJmZmTW0ns51\nxahoDnB5fn05cOIAMUFWDrWFrKtrM7Cq1sQjrUKw/adnZRROyxfydrIk9iZJJ0RE5W9ghM4AppDV\nHGsDzsxHrx7gU2QtzU7O742VSgpmZmZmO11sqlt10T0j4vH8+glgz+0+K2KFpN8Aj5OVZV0UEffV\nmrguO7ClRWwhK157TX7rCLIkdlR2YiOiOyJOAU4ClgH/IWuA8AhwFXB0RJzHtv141+z0hZqZmZmN\nEVs71xejVitZSb+SdPcAY045Lm9csF3zAkkHkpVm3RfYB3itpGNqrTF5BzYilpPQsCAitpId7Nqu\nSG1EzAfmV/2MEcReS1/Jr4EcXrr+W8qcZmZmZuNR97q+OrC1WslGxOsGe0/SKkl7RcTjkvYCVg8Q\nNhe4vbejq6QbyM5T3TbUGuu6A9uI8oNcb85f/jUivANrZmZmu6zuzo3FqKi3hSz5nz8fIOYR4FhJ\nTZKayQ5w1XyEQBVb0Y5pkp4PbI6IjkHe3wf4BXBIfuvDEXFB4vTj94szMzOz0ZL0v8s7Usc5Hyxy\nnH2/ePGI1yNpOrAYmAH8C3h7RKyR9ArgzIj4gKSJwPeA15DlVssi4hO15q7bIa4x6ijgh5JuJduK\nfhDYSPbM65Fkh816W83ezhBb5GZmZma7gq519TnEFRFPAbMGuH8H8IH8eivwoeHOPd4TWMj+jq/N\nx2CWAyflX6KZmZnZLqtr/YbaQaNsvCew15GV0jqe7ITbHsAzgS6yGmN/AK6OiOtGbYVmZmZmY0h3\nZ9doL6GmcZ3ARsRa4OJ8mJmZmVkNm9durss8kk4BziXbRDw8f3RgoLhpwCVknbgCeF9ErBhq7nGd\nwJqZmZnZ8GxeV7cd2LuBtwHfrxG3kOzw1smSWug7nzQoJ7BmZmZmVuiq0yMEvR21pMELGUiaSlaB\nYH7+M11kj3oOaZevA2tmZmZmfTav6yrGTvA8sk6pP5R0p6RLJE2u9UNOYM3MzMyssLGzqxj1aiU7\nhCbg5cAFEXEo0AksSPkhMzMzMzMA1nb3FNdVWskm6gA6IuIP+eufkpDAegfWzMzMzApPb+kpxo4W\nEU8A/5b0wvzWLODeWj/nBNbMzMzMCmu7e4pRhaS5kjrIOqNeL+nG/P7ekpaWQs8GrpJ0F3AI8NWa\nc0dErRgbmL84MzMzq7fBj+zvJJ9pOaDIcb7e9dCor2cgTmDNzMzMrKH4EQIzMzMzayhOYM3MzMys\noTiBNTMzM7OG4gTWzMzMzBqKE1gzMzMzayhOYM3MzMysoTiBNTMzM7OG8n9uJ+2DE5HhhAAAAABJ\nRU5ErkJggg==\n",
            "text/plain": [
              "<Figure size 864x72 with 2 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "xtM9lYuuCgjD",
        "colab_type": "text"
      },
      "source": [
        "We can also compare multiple embeddings:"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "K6SADFGaCWUH",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 303
        },
        "outputId": "31280cc9-07ba-49df-f01a-9680bebc429a"
      },
      "source": [
        "plot_embeddings([model['king'], model['man'], model['woman'], model['girl'], model['boy']],\n",
        "              ['king', 'man', 'woman', 'girl', 'boy'])"
      ],
      "execution_count": 54,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAukAAAEeCAYAAAA3u4s3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0\ndHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deZhlVXWw8XdVD3Q3NDMyyigqxAlQ\nEIkMiopCREAU51a0JQYTzRcjmdQvicYk+hkiKgJioyCoiAoKONIKCko7IzKPzTxL0xNdtb4/zinr\ndnGr7r7dVV2nbr2/5znPPcM6++x7q7p61a519onMRJIkSVJz9E10ByRJkiStziRdkiRJahiTdEmS\nJKlhTNIlSZKkhjFJlyRJkhrGJF2SJElqmOkT3QGtWz+68f6iOTfv+OPy4jaPeuRHRXG596uK2/zu\nLY8Wxx6ydVlcTptZ3OYvHiyfmnSvm75dHDt91z2K4lZt/OTiNvf84KXFsb/8twOL4h783xOK27zk\nkH8ojr17yYri2HfP+n1RXN+Tdihus//OG4pjz5vz/KK4F26/cXGbW1D+fU2Uj6FMe/Seorjf9ZV/\nX5283XOKY0/4+wOK4rJ/oLjN7Y//P8Wx18/euTj2WYe8pyju0ctOLG4zf/KV4tgvb/bSoridN5lT\n3Oaum80qjn14eX9x7FP67yqKe+yiLxa3uezV5T8v7n1sVVHcCeeX/awAOPWeM4pjn3Rc+c/BnLFe\nUdwp15b/DDzmypOKYy/9yMVFcS//wt8Wtzl9s63KY/c6NIqDx9HMPd7W9bziK391eiP63o4j6ZIk\nSVLDOJIuSZKkSS/6pk10F8aUSbokSZImPZN0SZIkqWFM0iVJkqSGMUmXJEmSGiammaRLkiRJjdLn\nSLokSZLULJa7SJIkSQ1jki5JkiQ1TPT11jM6TdIlSZI06TmSLkmSJDWMSbokSZLUMCbpkiRJUsM4\nT7okSZLUML02kt5bt8EOExEHRkTWy4fWsI0FLW3sOKYdlCRJ0piIvmldL03mSLokSZImvV574mhP\nj6RLkiRJk5Ej6R1k5jxg3gR3Q5IkSaNoevlKt0zSJUmSNOmZpEuSJEkN02tJujXpQETsEhE31jO4\nDETEe1uOjTq7S7sZZCJi+4j4eERcExGPRcTDEfHTiHhXRBT9YhQRR0TEtyPinohYHhG3RMSZEbFP\nfXxey3XnjcXnIEmSNFk5u0uPiYg9gIuALYFVwFsz88y1aO8Q4Gxg42GH9q2XV0XEX2TmihHOnwGc\nBRw97NAO9XJMRLwfeGBN+yhJktRrxivpjojTgcOAezPzGSPEHAj8DzADuD8zD1jb607pJD0iDgK+\nAWwILAVenZkXrUWTzwHeBwTwWeByYAXwXOA4YH3gJcA/AR8YoY1TGErQlwML6nb663aOBT4GnLsW\n/ZQkSeop4/jE0QXAScAX2l43YmPg08AhmXlbRDxpLC46ZZP0iDiKasR6PeBB4LDMvHwtmz0cuA04\nODOvb9l/TkR8BfgJ1Wd+fER8ePhoekS8mKGZZO4HDsrMq1pCzoqIE4GFwKvXsq+SJEk9Y7xG0jPz\nxx0eaPl64LzMvK2Ov3csrjsla9Ij4p3AV6gS9DuAF45Bgj7ojcMSdAAy8+fAl+vNTYC925z73pb1\n44cl6IPt3IJTQkqSJK1mAmvSnwpsEhELI+IXEfHmsWh0yiXpEfEB4GSq934t8ILMvHqMmv9VZl46\nyvEftqzvPqxfs4CX1pt3Al8dqZHMXAj8trRTETE/IhZFxKILzmn7lxpJkqRJbU2S9NYcqV7mr8Gl\npwN7AYcCLwP+JSKeurbvZyqVu/RFxEnAX9XbVwKvyMz7x/AaV3Q4fkfL+ibDjj2b6mYDgB9n5kCH\nthYCzyrpVGaeQlXrzo9uvD9LzpEkSZpM+vqi63Nac6S1sBh4IDMfAx6LiB9T5XXXrU2jUylJ/2tg\no3r9+8ARmblkjK/RKeFvrUGfNezYNi3rNxVcqyRGkiRpSog1SNLHyDeBk+pptmcC+wCfWNtGp1KS\n3vpe16eagWWsdRr9Hs36LetLC+IfW4trSZIk9ZSI8UnSI+Js4EBg84hYDHyQuvohM0/OzD9ExMVU\npcgDwGnt7ivs1lRK0k8EdgOOoJqv/DsR8bLMfHRiu/UnrUn3nIL49TuHSJIkTQ1rUu5SIjNfVxDz\n38B/j+V1p9KNo48DrwXOq7cHE/W5E9el1dzZsr5zQXxJjCRJ0pQQfdH10mRTKUknMwcT9a/VuwYT\n9Q0nrld/8huqXyQA9o+ITl+bA8e3O5IkSZOHSfokl5mrgGMYemLnvsDFE52oZ+Zy4Lv15jYMPXX0\nCepHzxbN7CJJkjQV9EV0vTTZlEvS4U+J+utYPVFvwoh6653AJ0XEM4YH1E+8WrCO+iNJkqQJMCWT\ndFgtUR98aNDzmeBEPTN/wFACvjlwZUR8JiLeFBFviIhPUJXF7MDQLxiwdrPKSJIkTXq9Vu4ylWZ3\neYLMXBURrwcSeA1Vov7diHhpZv5xgro1H9gAeDXVXOrH1cugAeDvgEfqGICmzFAjSZI0IZqedHdr\nyo6kD6pH1F8PfLnetQ9Voj4hI+qZ+XhmHg0cBVwM3Ef1EKTbgLOA/TLz48BmLac9uM47KkmS1CB9\nfdH10mQ9PZKemQspeGhRZvZT3Ux6TJtj84B5a3uNNYg9j6HpItvZu2X9dyVtSpIk9aqO8+JNMj2d\npPeq+ubRw+rN32SmI+mSJGlKG68njk4Uk/SGiYhdgBWZuXiE49sCXwdm1rs+u676JkmS1FRNL1/p\nlkl68+wLfD4ifgxcCtwILKOqQX8+1Q2uc+rYK4BTJqKTkiRJTdJrN46apDfTdOBF9TKShcBRdT29\nJEnSlGaSrvF2AdU0jC8BdqOaL31TYCVwD/Az4JzMvGDCeihJktQwTX+CaLdM0hsmMx8BTq0XSZIk\nFXAkXZIkSWoYk3RJkiSpYZzdRZIkSWoY50mXJEmSGsYnjkqSJEkNY7mLJEmS1DC9duNoj/1hQJIk\nSZr8HEmXJEnSpOeNo5rU9t28LO53MzcobrNvuxeWxd10RXGbx3/szuLYb33klUVxz1h+fXGbW2/4\ntOLY2OsVxbGP9M0pittgYGlxm5d88EXFsfmTc4rifnvkB4vb3KB/oDj2b2ZcWxz78A4HF8X94OaH\ni9v8i/t+VBy7734bFcXN/cZ/Frf54vsPKo696K+eXxx796zZRXF9j5d/rbqx5X57FcVdu9ebi9u8\nuos/W+/2+O3FsaWm31v+86J/z5cVx+5P2ffVqi6+VI+s6C+O3Wx2+X/7q2ZsX3b9I04obnOrq75d\nHLvJM8t+Bhy7347FbW6+038Vx966rLzYYNHtfyyKe+f03xW3GQeUf189/7HlRXGX7VT2/yXA/ltk\ncWxTWJMuSZIkNUyv1aSbpEuSJGnSm2aSLkmSJDWLSbokSZLUMCbpkiRJUsOYpEuSJEkNY5IuSZIk\nNcx0k3RJkiSpWRxJlyRJkhrGJF2SJElqmGl95U+JnQxM0iVJkjTpOZIuSZIkNYxJuiRJktQwJumS\nJElSw0yL3krSe6vCXpIkSeoBjqRLkiRp0rPcRZIkSWoYk3RJkiSpYaabpEuSJEnN4ki6JEmS1DAm\n6ZIkSVLD9FqS3pNTMEbEgRGR9fKhet9TI+JTEXF9RCyNiDsj4oKI2K/N+YdGxLci4vaIWB4Rt0bE\npyNiq1GuOT0iXhYRH4+IyyLi3ohYGRGPRsR1EbEgIvYv6PuClr7vWO97WUR8IyIWR8SKuu9fjYh9\n1vhDkiRJ6iHT+qLrpcmmxEh6RBwFfAGY07J7NnAYcGhEHJuZn4+IGcBngbcOa2J74C+BIyLihZl5\nQ5vLfA84sM3+GcCu9fKWiDgDmJ+ZKwu63hcRn66v3Wpr4NXAkRExPzM/V9CWJElSz2p60t2tqZCk\n7wWcAKwE/gdYRPUXhEOA1wEBnBoRlwF/TZWg/xY4E7gV2BKYDzwD2ApYAPx5m+vMBpYAPwB+AdwC\nLKdKqP8MeAOwPvAW4GHgPQV9//e6j9dR/ZJxAzAXOBJ4ef0+Ph0RP8nMa4o+DUmSpB40Xkl6RBwC\nnAhMA07LzI8OO749cAawcR1zQmZeuLbXnQpJ+mHAjcCLMvO2lv1fjIjfAx+m+kDPAfYAPgMcn5kD\ng4ER8TngCuCZwH4RsXdm/nzYdf4J+GlmLmvXiYj4R+AbVAn+uyPixMy8uUPfX0eVnB+bmata9p8W\nESdS/VIxs359V4e2JEmSetZ4JOkRMQ34FPASYDFwZUScn5lXt4T9M/CVzPxMROwOXAjsuLbX7sma\n9DbeOCxBH/Rx4NF6fU/gKuDdrQk6QGYuBVp/a3rZ8IYy8wcjJej18QeoRtGh+tzfUNDva4B3DEvQ\nB/0zMHi9J/RHkiRpKhmnmvS9gRsy86a6VPkc4PBhMQlsWK9vBNw5Fu9nKiTpv8jMK9odyMwVVOUv\ngz6bmf0jtHNZy/rua9KRzLwJuLveLLnp8zMj1a5n5qMM9X2niJi1Jn2SJEnqBeOUpG8L3N6yvbje\n1+pDwBsjYjHVKPq7x+L9TIUk/Wcdjt/Tsj68hGWkuE3aBUTEhhHxl/WsMbdExJKWmVoyIpKqrh1g\nu85dp+0vFy3uGLw0VR1UWxExPyIWRcSi0xZ8oeCykiRJk8uaJOmtOVK9zF+DS78OWJCZ2wGvoCqp\nXusceyrUpD/Q4fiKktjMXBHxp9+4njBqHREHAV9iKAnvZMPOIdzf4Xhr30ccSc/MU4BTAFY+cn8W\nXFeSJGlSmRbd16S35kgjuAN4csv2dgwNkg46lmpCEjLz8rq6YXPg3q471GIqJOkDnUPWKPZPImJX\n4NtUM7wAXAtcBFwPPEg1y8ugU4AtqG5WHZf+SJIkTTV9a5CkF7gS2DUidqJKzo8BXj8s5jbgxcCC\niNiNauD0vrW98FRI0teFf2AoQf8w8C+Z2XbEOiJOXWe9kiRJmiKmjUOOnpmrIuJ44DtUA6ynZ+bv\nI+JfgUWZeT7wf6im834v1U2k80bKA7thkj42Dq5f7wU+MEqCPhfYdJ31SpIkaYroG6d50us5zy8c\ntu8DLetXA094gv3amgo3jq4LW9avNw+fvnGYg/EzlyRJUgeOpI+NpVQPFdo5IqLdSHo9Gf4/rvOe\nSZIkTQFrcuNokzmqOzaurF+3AN4z/GBEzABOBZ67LjslSZI0VfRFdL00mSPpY+OTVI+LBfh/EXEg\n1Q0GDwC7Am+uXy+pX0vmSJckSVKh8bhxdCKZpI+BzLwgIv6DapYXgFfWS6ufAK9laNRdkiRJY2S8\nbhydKCbpYyQz/zEifgwcD+wDbET1MKI/AGdTPYlqVTT8TyuSJEmTUdPLV7rVk0l6Zi4Eir5SmTkP\nmFcYO2qbmXkxcHGHmB3HsD/FsZIkSb3MchdJkiSpYRxJlyRJkhpmmjXpkiRJUrM4ki5JkiQ1jDXp\nkiRJUsM4ki5JkiQ1jDXpkiRJUsP0WI5uki5JkqTJb5rlLpIkSVKzWJMuSZIkNcy0vonuwdjqsbcj\nSZIkTX6OpEuSJGnSs9xFkiRJahhvHJUkSZIaxpF0TWqxcmlR3I0PlX9rPPORnxbF5QYbF7c5e+7c\n4th3nPbzorifvmZWcZu/v6/scwJYtsns4tinDtxeFHfP7O2K29z00s8Vx97+/LeWBT60rLjNa+9b\nUhx72HblX9f8/L8Uxe1yRFkcQOz6juJYlvYXhc3efc/iJq/5yKLi2BnH7VEce/nt5V+D8ZDLHiuK\nmzW9/DaouTOnFcfGwyuKY0vlzPJ/19OWPVQcu9UWmxfFPbKi7PsPYFYXz0Kf1ZfFsauyrN0lKweK\n21x+3VXFsXN2enZR3C6bblnc5s/vXVUcu9fW6xfHbjJrRlHc0kVl/18BzDm08Oc1cMel1xTFrffa\nLm5FjPLvlabotRtHTdIlSZI06TmSLkmSJDVMj+XoJumSJEma/ProrSzdJF2SJEmTniPpkiRJUsP0\nmaRLkiRJzeJIuiRJktQw1qRLkiRJDeNIuiRJktQw1qRLkiRJDdNjObpJuiRJkiY/nzgqSZIkNUyP\n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\n",
            "text/plain": [
              "<Figure size 864x360 with 2 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "cz1-mreNClOK",
        "colab_type": "text"
      },
      "source": [
        "Here's another example including a number of different concepts:"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "cgBLjFK8_6FW",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 303
        },
        "outputId": "a4134d48-0252-404e-8e31-5dab9de3a9e4"
      },
      "source": [
        "plot_embeddings([model['king'], model['water'], model['god'], model['love'], model['star']],\n",
        "              ['king', 'water', 'god', 'love', 'star'])"
      ],
      "execution_count": 55,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtEAAAEeCAYAAABMn0n7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0\ndHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deZhdVZXw/+9KAkRCkFmZBBVQHJEZ\nbRBEBEVFRBQco/iCtmg7tL62doPdarc/5wEVESGAvKACIrSIAxpxAAUVFBEZBDFhBkHmkKr1++Oc\nog6Xqrr7VOVSt26+n+c5T51hnX32rUrqWdlZZ+/ITCRJkiSVmzXdHZAkSZJmGpNoSZIkqSWTaEmS\nJKklk2hJkiSpJZNoSZIkqSWTaEmSJKmlOdPdAT3UT6+6pWjOwSX/uK+4zf3u+GlRXG7/suI2f3DN\nncWxe61fHErOXrko7je3lU/NuM1fvlscO2fzZxXFLVtj4+I2tz78Z8Wxv/3wrsWxt33+/UVxP9nr\n34rbvOGu+4tj3z73j0Vxs9bbpLjNoeuuLI49bdUdi2N3ftwaRXHrUv7nmigfg5h9541FcX+YVf7n\n6siNtiqOff/7nlscm0PDRXGPO/Q9xW1e8agnFMc+Y693FsXd+fPPFbeZv/hmcew31n5BcewT1ly1\nKG7ztecWt3n7fUPFsZsNXV8Ud/f3Tihu895XlP++uOnuZcWx7z+j7PfFV288rrjN9d5S9jsQIFda\npSjuqD+X/w484IIjimN/9t9nF8e+8Ph3F8XNWfuxxW0CzNlm72h1Qw+s/Kw3TWpe5aW/O2ba+z4W\nR6IlSZKklhyJliRJUs/FrNnT3YXlyiRakiRJPWcSLUmSJLVkEi1JkiS1ZBItSZIktRSzTaIlSZKk\nVmY5Ei1JkiS1YzmHJEmS1JJJtCRJktRSzBqsNf5MoiVJktRzjkRLkiRJLZlES5IkSS2ZREuSJEkt\nOU+0JEmS1NKgjURP62uSEbFrRGS9fWiSbSxstLHpcu2gJEmSlouYNXtSW79yJFqSJEk9N2grFg7W\nhH2SJEnSI2DGj0Rn5gJgwTR3Q5IkSRPo59KMyZjxSbQkSZL6n0m0JEmS1NKgJdEzoiY6Ip4YEVfV\nM3AMR8S7GtcmnJ1jrBlAIuJxEfGpiLgsIu6OiNsj4pcR8c8RUfQPi4jYNyK+GxE3RsR9EXFNRHw9\n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\nYII=\n",
            "text/plain": [
              "<Figure size 864x360 with 2 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "jjXRJTkH_6FZ",
        "colab_type": "text"
      },
      "source": [
        "## Analogies\n",
        "### king - man + woman  = ?"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "dXs2TVam_6Fa",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 187
        },
        "outputId": "40055f86-b4cb-4144-a5ac-c324f0f4edc3"
      },
      "source": [
        "model.most_similar(positive=[\"king\", \"woman\"], negative=[\"man\"])"
      ],
      "execution_count": 33,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[('queen', 0.8523603677749634),\n",
              " ('throne', 0.7664334177970886),\n",
              " ('prince', 0.759214460849762),\n",
              " ('daughter', 0.7473883032798767),\n",
              " ('elizabeth', 0.7460220456123352),\n",
              " ('princess', 0.7424569725990295),\n",
              " ('kingdom', 0.7337411642074585),\n",
              " ('monarch', 0.7214490175247192),\n",
              " ('eldest', 0.7184861898422241),\n",
              " ('widow', 0.7099430561065674)]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 33
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "KMLRo6DW_6Fd",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 303
        },
        "outputId": "7f7d2afa-ccf4-4a56-9c0b-b49a725691bf"
      },
      "source": [
        "plot_embeddings([model['king'], \n",
        "                model['man'], \n",
        "                model['woman'],\n",
        "                model['king'] - model['man'] + model['woman'],\n",
        "                model['queen']],\n",
        "                ['king', 'man', 'woman', 'king-man+woman', 'queen'])"
      ],
      "execution_count": 56,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 864x360 with 2 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Yl0kGOJn_6Fg",
        "colab_type": "text"
      },
      "source": [
        "**2019 update**: This turned out to be a misconception. The result is actually closer to \"king\" than it is to \"queen\", it's just that the code rules out the input vectors as possible outputs\n",
        "\n",
        "\n",
        "[Fair is Better than Sensational:Man is to Doctor as Woman is to Doctor](https://arxiv.org/abs/1905.09866)\n",
        "\n",
        "To verify, let's calculate cosine distance between the result of the analogy, and `queen`."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "246SfDTN_6Fh",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "3800a072-81a3-4b0c-ba64-98b2ebc4835d"
      },
      "source": [
        "result = model['king'] - model['man'] + model['woman']\n",
        "\n",
        "# Similarity between result and 'queen'\n",
        "cosine_similarity(result.reshape(1, -1), model['queen'].reshape(1, -1))"
      ],
      "execution_count": 35,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([[0.8609581]], dtype=float32)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 35
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "nLouwuAzC80t",
        "colab_type": "text"
      },
      "source": [
        "Let's compare that to the distance between the result and `king`:"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "eRL5BTC0_6Fk",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "b7d0dca9-4502-4878-b266-4eacf86fcb23"
      },
      "source": [
        "# Similarity between result and 'king'\n",
        "cosine_similarity(result.reshape(1, -1), model['king'].reshape(1, -1))"
      ],
      "execution_count": 36,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([[0.8859834]], dtype=float32)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 36
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Vs7wB08b_6Fx",
        "colab_type": "text"
      },
      "source": [
        "So the result is more similar to king (0.8859834 similarity score) than it is to queen (0.8609581 similarity score)."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "khmA8TJI_6Fy",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 243
        },
        "outputId": "4d3b7c65-e10e-4109-f2e2-848429b61699"
      },
      "source": [
        "plot_embeddings( [model['king'],\n",
        "                 result, \n",
        "                 model['queen']],\n",
        "                 ['king', 'king-man+woman', 'queen'])"
      ],
      "execution_count": 38,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 1296x216 with 2 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "zwc6OsJv_6F1",
        "colab_type": "text"
      },
      "source": [
        "## Exercise: doctor - man + woman = ?"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Y-oqYbHn_6F2",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "# TODO: fill-in values\n",
        "model.most_similar(positive=[], negative=[])"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "mw4vDdlN_6F6",
        "colab_type": "text"
      },
      "source": [
        "### Verify: Is it, really?"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "-AMCMD_m_6F7",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "# TODO: do analogy algebra\n",
        "result = model[''] - model[''] + model['']\n",
        "\n",
        "# Similarity between result and 'nurse'\n",
        "cosine_similarity(result.reshape(1, -1), model['nurse'].reshape(1, -1))"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "0f5JXIsF_6F9",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "\n",
        "# Similarity between result and 'doctor'\n",
        "cosine_similarity(result.reshape(1, -1), model['doctor'].reshape(1, -1))"
      ],
      "execution_count": 0,
      "outputs": []
    }
  ]
}